package edu.wpi.first.wpilibj.templates;

/**
 * The RobotMap is a mapping from the ports sensors and actuators are wired into
 * to a variable name. This provides flexibility changing wiring, makes checking
 * the wiring easier and significantly reduces the number of magic numbers
 * floating around.
 */
public class RobotMap {
    // For example to map the left and right motors, you could define the
    // following variables to use with your drivetrain subsystem.
    // public static final int leftMotor = 1;
    // public static final int rightMotor = 2;
    
    //cRIO Slots

    // Solenoids
    public static final int LEFT_OPEN_SOLENOID = 1;
    public static final int LEFT_CLOSE_SOLENOID = 2;
    public static final int RIGHT_OPEN_SOLENOID = 3;
    public static final int RIGHT_CLOSE_SOLENOID = 4;
    public static final int LEFT_DEPLOY_SOLENOID = 5;
    public static final int LEFT_RETRACT_SOLENOID = 6;
    public static final int RIGHT_DEPLOY_SOLENOID = 7;
    public static final int RIGHT_RETRACT_SOLENOID = 8;
    
    // PWMs on the first digital side car
    public static final int TOP_LEFT_TALON = 3;
    public static final int BOTTOM_LEFT_TALON = 4;
    public static final int TOP_RIGHT_TALON = 1;
    public static final int BOTTOM_RIGHT_TALON = 2;
    public static final int COLLECTOR_POSITION_TALON = 5;
    public static final int LOWER_COLLECTOR_BELT_TALON = 6;
    public static final int UPPER_COLLECTOR_BELT_TALON = 7;
    public static final int HOPPER_TALON = 8;
    public static final int SHOOTER_PITCH_TALON = 9;
    public static final int CAMERA_SERVO = 10; 
    
    // Jaguars CAN IDs
    public static final int SHOOTER_FRONT_JAGUAR = 2;
    public static final int SHOOTER_MIDDLE_JAGUAR = 3;
    public static final int SHOOTER_BACK_JAGUAR = 4;
    
    
    // Analogs
    public static final int DRIVETRAIN_GYRO = 1;
    public static final int COLLECTOR_POT = 3;
    public static final int SHOOTER_POT = 2;
    
    // Relays
    public static final int COMPRESSOR_RELAY = 1;
    public static final int HOPPER_LIGHTING_RELAY = 2;
    public static final int PHOTON_CANNON_RELAY = 3;
    public static final int CLIMBER_LEFT_RELAY = 4;
    public static final int CLIMBER_RIGHT_RELAY = 5;
    
    
    // Digital I/O
    public static final int HOPPER_START_SWITCH = 4;
    public static final int HOPPER_STOP_SWITCH = 1;
    public static final int ROBOT_LIGHTING_SWITCH = 5; //unused
    public static final int PRESSURE_CHANNEL = 6; 
    public static final int LEFT_DRIVE_ENCODER_CH_A = 7;
    public static final int LEFT_DRIVE_ENCODER_CH_B = 8;
    public static final int RIGHT_DRIVE_ENCODER_CH_A = 9;
    public static final int RIGHT_DRIVE_ENCODER_CH_B =10;
    
    // Joystick ports
    public static final int DRIVER_JOYSTICK_LEFT = 1;
    public static final int DRIVER_JOYSTICK_RIGHT = 2;
    public static final int SHOOTER_JOYSTICK = 3;
    public static final int PRO_FLIGHT_JOYSTICK = 4;
    public static final int DRIVER_JOYSTICK_DUAL_ACTION = 5;
    
    // If you are using multiple modules, make sure to define both the port
    // number and the module. For example you with a rangefinder:
    // public static final int rangefinderPort = 1;
    // public static final int rangefinderModule = 1;
}
